【嵌入式 – GD32开发实战指南(RISC-V版)】第1部分 基础篇 – 第1章 RISC-V开发环境搭建 – 基于Nuclei Studio开发

开发环境:
开发板:GD32VF103R-START
IDE:Nuclei Studio

RISC-V系列的MCU开发环境有很多,可以使用VS Code开发,也可以使用IDE,比如Embedded studio、Eclipse(Nuclei Studio、MounRiver Stuido、GNU MCU Eclipse)等,IAR也支持RISC-V。无论使用什么工具,编译工具还是使用riscv-none-embed,本质是一样的。

1.1基于Nuclei Studio开发

Nuclei Studio下载

1.1.1 Nuclei Studio IDE安装

Nuclei Studio IDE 是基于eclipse的,软件是免安装的。因此直接去Nuclei官网下载对应的版本即可。

Oc28b9.md.png

值得注意的是,安装Nuclei Studio IDE之前,电脑中要有Java运行时环境(JRE)。

因为Nuclei Studio IDE是Java写的,不然怎么能跨平台,这也是为什么在安装前需要检查Java环境。如果你安装过JDK,那么跳过此步骤即可。

JDK下载地址

下载后点击JavaSetupxxx.exe即可安装。

打开命令提示符,输入java会有如下显示,则安装成功。

Oc2dgO.md.png

注意:打开命令提示符方法

win+R 输入cmd 即可。

还可以查看Jre版本:

Java -version

Oc2rbd.md.png

接下来解压Nuclei压缩包即可使用。

打开NucleiStudio.exe,选择工作路径。

Oc2H5q.md.png

打开NucleiStudio后如下所示。

OcR1Rf.md.png

1.1.2工程导入

这是既然是快速入门,自然是导入已有的工程,可以到GD官网下载相应的GD32VF103_Demo_Suites。

GD32VF103开发板例程下载地址

下载GD32VF103开发板例程。

OcRDzT.md.png

解压GD32VF103_Demo_Suites_V1.1.1.rar,里面有以下文件:

OcR2w9.md.png

GD32VF103_Firmware_Library是GD32VF103系列的固件库。

GD32VF103C_START_Demo_Suites、GD32VF103R_START_Demo_Suites、GD32VF103T_START_Demo_Suites、 GD32VF103V_EVAL_Demo_Suites分别是不同的开发板例程。

笔者这里使用的是GD32VF103R-START开发板。

因此这里将导入GD32VF103R-START开发板的例程。

OcRISK.md.png

然后选择相应的例程的eclips目录。

OcRbeH.md.png

值得注意的是,该开发板默认使用的内部时钟,板子的外部时钟源是25MHz,要想得到精确的时钟就需要初始化系统时钟,因此在进入主函数请需要初始系统时钟。

OcRLTA.md.png

1.1.3编译

接下来就可以编译工程了。

OcRjYt.md.png

出现以上信息表示编译成功了。

如果提示无法找到编译工具,请按照下图设置。

OcWSl8.md.png

1.1.4下载固件

编译没有错误就可以进行下载了。

在下载之前,需要配置下参数,右击工程选择Run As->Run Configurations…配置debug参数。

OcWp6S.md.png

参数配置如下:

Config Options参数如下:

-f "D:\NucleiStudio\toolchain\openocd\scripts\interface\openocd_gdlink.cfg"

该脚本需要自行添加,默认是没有的,也可设置为其他路径,openocd_gdlink.cfg内容如下:

adapter speed    1000
reset_config srst_only
adapter srst pulse_width 100

adapter driver cmsis-dap

transport select jtag

#autoexit true

set _CHIPNAME riscv
jtag newtap $_CHIPNAME cpu -irlen 5 -expected-id 0x1000563d

set _TARGETNAME $_CHIPNAME.cpu
target create $_TARGETNAME riscv -chain-position $_TARGETNAME
$_TARGETNAME configure -work-area-phys 0x20000000 -work-area-size 20480 -work-area-backup 0

# Work-area is a space in RAM used for flash programming
if { [info exists WORKAREASIZE] } {
   set _WORKAREASIZE $WORKAREASIZE
} else {
   set _WORKAREASIZE 0x5000
}

# Allow overriding the Flash bank size
if { [info exists FLASH_SIZE] } {
    set _FLASH_SIZE $FLASH_SIZE
} else {
    # autodetect size
    set _FLASH_SIZE 0
}

# flash size will be probed
set _FLASHNAME $_CHIPNAME.flash

flash bank $_FLASHNAME gd32vf103 0x08000000 0 0 0 $_TARGETNAME
riscv set_reset_timeout_sec 1
init

halt

Commands参数如下。

set mem inaccessible-by-default off
set arch riscv:rv32
set remotetimeout 250

然后点击‘Run’按钮下载。

OcWEYq.png

等待下载完成。

OcWYp6.md.png

固件下载完成后 LED应该已经开始闪烁了。

1.1.5调试程序

点击‘Debug’按钮即可开始调试。

OcWN6O.md.png

这个就没啥说的了。

OcWw0H.md.png


欢迎访问我的网站

BruceOu的哔哩哔哩
BruceOu的主页
BruceOu的博客
BruceOu的CSDN博客
BruceOu的简书
BruceOu的知乎


欢迎订阅我的微信公众号

关注公众号[嵌入式实验楼]获取资源

Related posts

Leave a Comment